package com.itheima.d3_regex;

import java.util.Scanner;

//案例：手机号、邮箱、座机号验证
public class Demo3 {
    public static void main(String[] args) {
        /**
         * 请编写程序模拟用户输入手机号码、验证格式正确，并给出提示，直到格式输入正确为止
         * 格式：第1个数只能是1，第2个数可以是3、4、5、8。其余数字随意
         *
         * 请编写程序模拟用户输入邮箱号码、验证格式正确，并给出提示，直到格式输入正确为止
         * 格式：
         * @符号前：可以是数字和英文，最少1个，最多20个
         * @符号后：.符号前后都只能是英文字母，最少1个，最多10个
         *
         * 请编写程序模拟用户输入座机号码、验证格式正确，并给出提示，直到格式输入正确为止
         * 格式：区号-电话号；区号：3位数字；电话号7~10位
         */
        //1.需求需要使用键盘录入，创建Scanner对象
        Scanner sc = new Scanner(System.in);

        //2.提示并录入手机号码，有可能格式不正确！所以可能不是一次成功！
        while (true) {
            System.out.println("请输入手机号码：");
            String tel = sc.next();

            //3.开始用正则表达式校验，给一个正则表达式的字符串
            // 格式：共11个数字，第1个数只能是1，第2个数可以是3、4、5、8。其余数字随意
            String telRegex = "1[3458]\\d{9}";

            //4.字符串使用正则校验的方法：matches
            boolean result = tel.matches(telRegex);

            if (result) {
                //条件成立，合法
                System.out.println("手机号：" + tel);
                break;
            } else {
                System.out.println("您输入的手机号格式不正确，请重试！");
            }
        }

        //5.剩下的邮箱、座机号的逻辑和上面是一样的，只是正则表达式不同
        //邮箱正则：@符号前：可以是数字和英文，最少1个，最多20个，@符号后：.符号前后都只能是英文字母，最少1个，最多10个
        String emailRegex = "[0-9a-zA-Z]{1,20}@[a-zA-Z]{1,10}\\.[a-zA-Z]{1,10}";

        //座机正则：区号-电话号；区号：3位数字；电话号7~10位
        String phoneRegex = "\\d{3}-\\d{7,10}";
    }
}
